package com.itheima.service.impl;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class Demo {
    public static void main(String[] args) {

        ThreadDemo td = new ThreadDemo();
        for (int i = 0; i < 10; i++) {
                new Thread(td).start();
        }
    }
}
class ThreadDemo implements Runnable{

    int count = 0 ;
    Lock lock = new ReentrantLock();
    @Override
    public void run() {

        // 说 synchro  效率很低， lock 锁 效率很高
        /**
            关于效率上的问题的话-> 1.6 以前確實syn 的效率會比較的低，在1.7开始的时候实际上，sun工具对syn进行了增强， 增强的结果是： ，甚至在某些情况下，syn效率高于lock
              syn 是相当于是借助于 操作系统的 内核函数
                    Java的多线程   并没有去真正的自己 去开辟线程-> os 操作系统 的  线程
                  而： syn 为了去锁住   对象 ->   需要去调用一些内核函数


         */
   /*     synchronized (this){*/
        lock.lock();
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "\t" + count++);
            lock.unlock();
        }
    /*}*/
}

